home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 11
/
FM Towns Free Software Collection 11.iso
/
t_os
/
data
/
dora
/
dorachat.plp
< prev
next >
Wrap
Text File
|
1995-08-17
|
11KB
|
400 lines
/* CHAT LOG DOWN START */
%CHATlog{var DAY1[24];var DAY2[10];
CHeck:={Yes};
DAY1:=@daylong;DAY2:=@im(@getchar(DAY1,6,2)|@getchar(DAY1,9,2));
footnote({読み込みを開始します});
dispoff(!DEBUG);mkdir2(LOG2|{freelog});dispoff({No});
receive(LOG2|{freelog\}|NET|DAY2|{.log});
};
%Wm {SNDMSG({kaknin_f.snd});footnote({自由行動のログはどうします?});
case (CHeck,
{Yes},
{select ({記録を終了しますか?},
Wtime4,,
{ 記録終了 },{stoprec;CHeck:={No};Chat:={};},
{終了しない},
)
},
{No},
{select ({記録を開始しますか?},
Wtime4,,
{ 記録開始 },
{
Reclog:={Y};
case (freLOG,
{Yes},{DOWNSTART},
{No},{CHATlog},,{CHATlog}
)
},
{開始しない},
)});};
%retDORA{footnote({自由行動の終了処理中です});chat({No});
case (CHeck,{Yes},{DOWNSTOP},{No},);
footnote({自由行動を終了しました});type({//\n});
preRetM};
/************ 未削除のメールを全て読む ****************/
%allMAIL{type({ML\n});
wait(Wtime2,,{>},{type({\n})})};
%GOCHAT {
case (AM3={Detail},
{Yes},
{display({自動実行のため、自由行動は省略します\n})},
{No},
{
footnote({自由行動を開始します});wait(1);
CHeck:={No};Wm;chat({Yes});
loop ({footnote({終了記録MAILステタスチャット誘惑}|
{トーク 端末// LIB WHO },{b});
waitx(300);
case (@xtype,
{-2},{SNDMSG({jikan_f.snd});im({Yes})},
{101},{SNDMSG({erande_f.snd});
select ({処理を選択して下さい},Wtime4,{im({Yes})},
{ 終 了 },{retDORA;Ex:={Y};im({No})},{ 取 消 },{im({Yes})})},
{201},{SNDMSG({kaknin_f.snd});
select ({確認して下さい},Wtime4,{im({Yes})},
{ 終 了 },{retDORA;Ex:={Y};im({No})},{ 取 消 },{im({Yes})})},
{102},{Wm;im({Yes})},
{202},{Wm;im({Yes})},
{103},{allMAIL;im({Yes})}, {203},{allMAIL;im({Yes})},
{104},{type({#\n});im({Yes})}, {204},{type({#\n});im({Yes})},
{105},{FRee2;im({Yes})}, {205},{FRee2;im({Yes})},
{106},{Ccom:={};TALK;im({Yes})},{206},{Ccom:={};TALK;im({Yes})},
{107},{type({T\n});im({Yes})}, {207},{type({T\n});im({Yes})},
{108},{type({I\n});im({Yes})}, {208},{type({I\n});im({Yes})},
{109},{type({//\n});im({Yes})}, {209},{type({//\n});im({Yes})},
{110},{type({F\n});im({Yes})}, {210},{type({F\n});im({Yes})},
{111},{type({W\n});im({Yes})}, {211},{type({W\n});im({Yes})},
,{im({Yes})}
);
})
})
};
%FRee2 {
var MEMO[1]; /* ハンドルリストのメモ番号 */
var HANDLE2[20];
var HANDLE3[500]; /* 「専念モード」用ハンドルデータ用*/
var foottxt[48]; /* 「専念モード」footnote */
var A[2]; /* ただのカウント用 */
MEMO:=@mlast+1;
Chat:={Y};type({C\n});
wait (2,{SssTyp:={}}
,{Time},{SssTyp:={}}
,{/?},{SssTyp:={Yes}});
loop ({
footnote({▼▼ 誘惑専念偵察},{b});
waitx (300);
case (SssTyp
,{Yes},{Ccom:={/}}
,,{Ccom:={}});
case (@xtype,
{-2},{im({Yes})},
{101},{rtcend;im({No})},
{201},{rtcend;im({No})},
{103},
{type({//\n});Ccom:={};TALK;type({C\n});im({Yes})},
{203},
{type({//\n});Ccom:={};TALK;type({C\n});im({Yes})},
{104},{SPEMODE;im({Yes})},
{204},{SPEMODE;im({Yes})},
{105},{type(Ccom|{W\n});im({Yes})},
{205},{type(Ccom|{W\n});im({Yes})},
MEMO,{DOUBLE;im({Yes})},
,{im({Yes})}
);
});
};
/* ハンドルリスト取得 */
%Hdl{
DOWNCHECK;delfile(TEMP2|{_whotext.tmp});receive(TEMP2|{_whotext.tmp});
type(Ccom|{W\n});
footnote({アクセス状況をチェックします});
wait(3);DOWNSTOP;
case (Reclog={Y},{Yes},{CHATlog});
case (ESCon={No},
{No},
{dispoff(!DEBUG);command(CDIR2|{escctr -d}|TEMP2|
{ -K}|TEMP2|{ }|TEMP2|{_whotext.tmp});dispoff({No})
},,
);
};
/* ちゃっとにお誘いする */
%TALK {
Hdl;
case (@filechk(TEMP2|{_whotext.tmp})={},
{Yes},
{display({アクセスデータの読み込みに失敗しました})},
{No},{letCHAT}
);
};
%letCHAT{
var WhoRes[1200];
WhoRes:=@read(TEMP2|{_whotext.tmp});
var n[2]; n:={0};
%p @case(@getchar(ID,1,3)={YAG},{Yes},{im({2})},{No},{im({})});
display({\n ☆☆アクセス状況チェック☆☆\n});
loop ({ n:=n+1;
%a @getline(WhoRes,n,1);
case (a={},
{Yes},{im({No})},,
{%IDNo @strip(@getchar(a,6-p,8));
case (@strip(@getchar(a,6-p,3))=@getchar(ID,1,3)||
@strip(@getchar(a,6-p,8))={SYSOP},
{Yes},
{display(IDNo|{を確認しました\n});
case (IDNo<>ID,
{Yes},{chatTalk(@getchar(a,4-p,1)
,@getchar(a,15-p,8))},
{No},{
case (@getchar(a,1,3)={Ch.},
{Yes},{display({Ch}|
@getchar(a,4,1)|{には貴方が}|
{アクセスしてます\n})
});
});
im({Yes})
},
{No},
{case (@getchar(a,1,3)={Ch.} && IDNo<>ID
&& @nochar(a)>6,
{Yes},{display({Ch}|@getchar(a,4,1)|
{には誰もアクセスしてません\n})
});
im({Yes})
});
});
});
};
%chatTalk{[chNo,HanDle]
sendtype({Ch/1});wait(1);type(Ccom|{T\n});
loop ({
wait (3,{im({Yes})},
{誰とトークするのかな}
,{WaitMK;type(chNo|{\n});im({Yes})},
{チャンネルを指定して下さい}
,{WaitMK;type(chNo|{\n});im({Yes})},
{メッセージ},{WhisPer},
{トークモードに入},{WhisPer},
{トークモードを終了},{im({Yes})},
{書き込み中なので送れない},{im({No})},
{,?,0},{im({No})},
{メイン},{im({No})},
{メイン},{im({No})},
{MAIN},{im({No})}
)
});
};
%WhisPer{
Wellcome;type(HanDle|{さん!\n});wait(1);
case (HanDLe={},{No},{type(HanDLe|{です!\n})},,);wait(1);
type({チャットをやりませんか\n});type({//\n});im({Yes})
};
%Wellcome{
%nowhh @getchar(@daylong,16,2);
case (4>=nowhh || nowhh>18,
{Yes},{type({今晩は})},
{No},
{case (10>=nowhh && nowhh>4,
{Yes},{type({お早ようございます})},
{No},
{case (18>=nowhh && nowhh>10,
{Yes},{type({今日は})}
)
})
})
};/*フェイスマークetc・・・・*/
%FAICE {
loop ({
SNDMSG({erande_f.snd});
footnote({戻る歓迎歓送脱出}|
{ヒャーッウインク=^^=ムニョンナマズ}|
{眠い起る},{b});
waitx();
case (@xtype,
101,{im({No})},201,{im({No})},
102,{Wellcome},202,{Wellcome},
103,{type({さようなら(^_^)/~~~~又ね!})},
203,{type({さようなら(^_^)/~~~~又ね!})},
104,{type({では落ちます(^_^)/~~~~ Bye Bye !!})},
204,{type({では落ちます(^_^)/~~~~ Bye Bye !!})},
105,{type({ヽ(^o^)丿ヒャーッヒャッヒャッ})},
205,{type({ヽ(^o^)丿ヒャーッヒャッヒャッ})},
106,{type({(^_-)})},206,{type({(^_-)})},
107,{type({(=^^=)})},207,{type({(=^^=)})},
108,{type({シ^_^ス ムニョーン})},208,{type({シ^_^ス ムニョーン})},
109,{type({~゚^_^゚~ビックリ})},
209,{type({~゚^_^゚~ビックリ})},
110,{type({('0`) ('_;) (=_=) (-_-) (_ _)Zz..})},
210,{type({('0`) ('_;) (=_=) (-_-) (_ _)Zz..})},
111,{type({('_`) (>_<) (0_0) (@_@)})},
211,{type({('_`) (>_<) (0_0) (@_@)})},
,{im({Yes})}
);
});
};
/* 専念モード */
%SPEMODE{
var B[1]; /* footnoteのページ */
var PF[2]; /* 押したPFキーの番号 */
B:=1;
Hdl;
SPEMODE2;
SPEMODE3;
loop ({
loop ({
footnote(foottxt,{b});
waitx();
case (@xtype,
{-2},{im({Yes})},
{101},{PF:={1};SENDMES;im({No})},
{201},{PF:={1};SENDMES;im({No})},
{102},{PF:={2};SENDMES;im({No})},
{202},{PF:={2};SENDMES;im({No})},
{103},{PF:={3};SENDMES;im({No})},
{203},{PF:={3};SENDMES;im({No})},
{104},{PF:={4};SENDMES;im({No})},
{204},{PF:={4};SENDMES;im({No})},
{105},{PF:={5};SENDMES;im({No})},
{205},{PF:={5};SENDMES;im({No})},
{106},{PF:={6};SENDMES;im({No})},
{206},{PF:={6};SENDMES;im({No})},
{107},{PF:={7};SENDMES;im({No})},
{207},{PF:={7};SENDMES;im({No})},
{108},{FAICE;im({No})},
{208},{FAICE;im({No})},
{109},{PF:={13};im({No})},
{209},{PF:={13};im({No})},
{110},{Hdl;SPEMODE2;B:=1;SPEMODE3;im({Yes})},
{210},{Hdl;SPEMODE2;B:=1;SPEMODE3;im({Yes})},
{111},{case(B=1,
{Yes},{B:=4;SPEMODE3;im({Yes})},
{No},{B:=B-1;SPEMODE3;im({Yes})})},
{211},{case(B=1,
{Yes},{B:=4;SPEMODE3;im({Yes})},
{No},{B:=B-1;SPEMODE3;im({Yes})})},
{112},{case(B=4,
{Yes},{B:=1;SPEMODE3;im({Yes})},
{No},{B:=B+1;SPEMODE3;im({Yes})})},
{212},{case(B=4,
{Yes},{B:=1;SPEMODE3;im({Yes})},
{No},{B:=B+1;SPEMODE3;im({Yes})})},
,{im({Yes})}
);
});
case(PF,13,{im({No})},,{im({Yes})});
});
};
/* 専念モード宛先付発言送信 */
%SENDMES{
%C @case(B, 1,{im(PF)}, 2,{im({6}+PF)},
3,{im({12}+PF)},4,{im({18}+PF)});
%HANDLE @case (PF,
{7},{im({ALL})},
,{im(@head(@getline(HANDLE3,C,1),{\n}))}
);
case (HANDLE,
{},{type({\n})},
{ALL},{type({>ALL});type({\n})},
,{type({>}|HANDLE|{さん});type({\n})}
);
};
/* 専念モード用ハンドルデータ作成(ハンドル\n・・・) */
%SPEMODE2{
case (@filechk(TEMP2|{_whotext.tmp}),
{Yes},
{
%LIST @read(TEMP2|{_whotext.tmp});
var n[2]; n:={0};
%p @case(@getchar(ID,1,3)={YAG},{Yes},{im({2})},{No},{im({})});
HANDLE3:={};
loop ({ n:=n+1;
%a @getline(LIST,n,1);
%IDNo @strip(@getchar(a,6-p,8));
%IDNo2 @strip(@getchar(a,8-p,8));
case (a={},
{Yes},{im({No})},, {case(@strip(@getchar(a,6-p,3))=@getchar(ID,1,3)
&& IDNo<>ID
||@strip(@getchar(a,6-p,5))={SYSOP},
{Yes},
{%HANDLE @getchar(a,15-p,8);
HANDLE3:=HANDLE3|HANDLE|{\n};im({Yes})},
{No},
{
case (@strip(@getchar(a,8-p,3))=
@getchar(ID,1,3)
&& IDNo2<>ID ||
@strip(@getchar(a,8-p,5))
={SYSOP},
{Yes},
{%HANDLE @getchar(a,17-p,8);
HANDLE3:=HANDLE3|HANDLE|{\n};
im({Yes})},
{No},{im({Yes})}
);
})
})
});
});
};
/* 専念モード用ハンドルデータを元にしてfootnoteのボタンを作る*/
%SPEMODE3{
%C @case(B,1,{im({1})},2,{im({7})},3,{im({13})},4,{im({19})});
%HANDLE @getline(HANDLE3,C);
var handle [4];
foottxt:={};
%foottxt2 {----------------------------------------};
A:=1;
loop ({
handle:=@getchar(@head(@getline(HANDLE,A,1),{\n}),1,4);
case (handle={},
{No}, {
case (@nochar(handle),
1,{handle:=handle|{ }},
2,{handle:=handle|{ }},
3,{handle:=handle|{ }}
);
foottxt:=foottxt|handle;
case(A,6,{im({No})},,{A:=A+1;im({Yes})})
},
{Yes}, {A:=A-1;im({No})});
});
case (A=6,{No},{foottxt:=foottxt|@getchar(foottxt2,1,(6-A)*4)});
foottxt:=foottxt|{ALL 挨拶戻る偵察前項次項};
};
/* RTCモード終了処理 */
%rtcend {
case(Chat={Y},{Yes},{type({//\n});Chat:={}});
loop ({
case(@mcheck>=MEMO,{Yes},{mclose(3)});
im(@mcheck>=MEMO);
});
CloseAllMemo;
loop ({
case (@mlast>=MEMO,
{Yes},
{
case(@mcheck!=@mlast,{Yes},{mopen(@mlast)});
mclose(3);
im({Yes});
},
{No},
{im({No})}
);
});
};
var Ex [1]; var Chat [1]; var Reclog [1];
/*チャットコマンド改造ネット対応SSS-NET 「例[/W] ログイン状況」*/
var SssTyp[3]; /* SSS-NETタイプの判定 */
var Ccom[1];Ccom:={}; /* 「/」付加判定 */
DOWNCHECK;pilotch({"});sendtype({Ch/1});
loop({ case (Ex<>{Y},{Yes},{GOCHAT;im({Yes})},{No},{im({No})})});
pilotch({$});sendtype({Line});SssTyp:={};